package biz

import (
	"context"
	"time"
)

// Cache redis缓存接口
//
//go:generate mockgen -source=cache.go -package=biz -destination=./cache_mock.go Cache
type Cache interface {
	// SetCache 设置缓存
	SetCache(ctx context.Context, key string, val interface{}, expiration time.Duration) error
	// GetCache 根据key值获取缓存value
	GetCache(ctx context.Context, key string) (string, error)
	// SAdd set添加
	SAdd(ctx context.Context, key string, value interface{}) error
	// Del 删除key
	Del(ctx context.Context, key string) error
	// SetRateNumberInLimitTime 限速访问器,限制唯一key,numLimit限制次数,exp限制时间
	SetRateNumberInLimitTime(ctx context.Context, key string, numLimit int64, exp time.Duration) error
}
